package com.qf.ex;

import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 *
 *
 * 异常处理器: 监听前端控制器，捕获前端控制器抛出的所有异常
 *@ExceptionHandler: 标记在方法上，指定该方法要处理的异常
 * @ControllerAdvice: 控制器通知对象，当控制器出现异常时通知此对象
 *
 * @RestControllerAdvice 相当于  @ControllerAdvice  + @ResponseBody
 * @author 千锋教育
 * @Company http://www.mobiletrain.org/
 * @Version 1.0
 */
@RestControllerAdvice
public class MyHandlerException  {

    /**
     * 处理自定义异常(预料到的异常)
     * @return
     */
    @ExceptionHandler({
            CustomException.class
    })

//    @ResponseBody
    public String handlerCustomException(CustomException e){
        return "自定义异常";
    }

    /**
     * 处理其他异常
     * @return
     */
//    @ResponseBody
    @ExceptionHandler({
            Exception.class
    })
    public String handlerOtherException(Exception e){
        return "其他异常";
    }

//
//    /**
//     * 处理自定义异常(预料到的异常)
//     * @return
//     */
//    @ExceptionHandler({
//            CustomException.class
//    })
//    public ModelAndView handlerCustomException(CustomException e){
//        ModelAndView mav = new ModelAndView();
//        mav.addObject("msg", "自定义异常");
//        mav.setViewName("/error.jsp");
//        return mav;
//    }
//
//    /**
//     * 处理其他异常
//     * @return
//     */
//    @ExceptionHandler({
//            Exception.class
//    })
//    public ModelAndView handlerOtherException(Exception e){
//        ModelAndView mav = new ModelAndView();
//        mav.addObject("msg", "其他异常");
//        mav.setViewName("/error.jsp");
//        return mav;
//    }

}
